<?php

require_once APPPATH . 'core/BaseDAO.php';

use models\M_categoria;

class CategoriaDAO extends BaseDAO {

    function __construct() {
        parent::__construct();
    }
	
    public function getCategorias(){
		
        try {

            $query = $this->em->createQuery('SELECT c FROM models\M_categoria c ORDER BY c.id');

            $cat = $query->getResult();

            return empty($cat) ? FALSE : $cat;
			
        } catch (Exception $e) {
            return FALSE;
        }
        
    }
    
    public function getCategoriaByFechaNacimiento($fecha){
        
        try {
            
            $edad = $this->calcularEdad($fecha);

            $query = $this->em->createQuery('SELECT c FROM models\M_categoria c 
                                            WHERE ' . $edad . ' >= c.limite_inferior_edad AND ' . $edad . ' < c.limite_superior_edad');
            
            
            $cat = $query->getResult();
            
            return empty($cat) ? FALSE : $cat[0];
			
        } catch (Exception $e) {
            return FALSE;
        }
        
    }
    
    public function getCategoriaIdByFechaNacimiento($fecha){
        
        try {
            
            $edad = $this->calcularEdad($fecha);

            $query = $this->em->createQuery('SELECT c.id FROM models\M_categoria c 
                                            WHERE ' . $edad . ' >= c.limite_inferior_edad AND ' . $edad . ' < c.limite_superior_edad');
            
            
            $cat = $query->getResult();
            
            return empty($cat) ? FALSE : $cat[0]['id'];
			
        } catch (Exception $e) {
            return FALSE;
        }
        
    }
    
    public function calcularEdad($fecha){
        
        list($diaNac,$mesNac,$anioNac) = explode("-",$fecha);

        $anioActual = date("Y");
        $mesActual = date("m");
        $diaActual = date("d");
        
        $edad = $anioActual-$anioNac-1;
        
        if($mesNac<$mesActual || ($mesNac==$mesActual && $diaNac<=$diaActual))
            $edad++;
        
        return $edad;
        
    }
		
}
